import java.util.ArrayList;
import java.util.List;


class Solution257 {

    List<String> list = new ArrayList<>() ;
    public List<String> binaryTreePaths(TreeNode root) {
        if(root == null) return null ;
        String tmp = "" + root.val ;
        if(root.left == null && root.right == null){
            list.add(tmp) ;
            return list ;
        }
        dp(root.left , tmp) ;
        dp(root.right , tmp) ;
        return list ;
    }
    private void dp(TreeNode root , String tmp){
        if(root == null) return   ;
        tmp += "->" + root.val ;
        if(root.left == null && root.right == null){
            list.add(tmp) ;
          return;
        }
        if(root.left != null){
            dp(root.left , tmp);
        }
        if(root.right != null){
            dp(root.right , tmp);
        }
    }
}